// pages/me/index/index.js
const db = wx.cloud.database();
const _ = db.command;
const userCollection = db.collection('users');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    isLogged:false,
    userName:'',
    userImg:'',
    userId:''
  },

  // 获取用户授权
  getUserInfo(e){
    console.log(e);
    // 获取用户信息
    const {nickName:userName,avatarUrl:userImg} = e.detail.userInfo; // 将数据里的nickName重命名为userName
    const openId = e.detail.signature;

    this.setData({
      userName,
      userImg,
      isLogged:true
    })

    // 将数据存储到 storage
    wx.setStorageSync('userName',userName); 
    wx.setStorageSync('userImg',userImg);
    wx.setStorageSync('openId',openId);
    
    // 调用云函数
    wx.cloud.callFunction({
      name:'getOpenId',
      success:( res => {
        console.log(res);
      })
    })

    // 将用户存储到数据库
    userCollection
      .where({
        _openid:openId  // 云数据库里的 _openid 和 e.detail.signature 有区别吗？
      })
      .get()
      .then( res => {
        if(!res.data.length){
          let userId = this.getUserId();
          userCollection
            .add({
              data:{
                userName,
                userImg,
                userId
              }
            })
            .then(res => {
              console.log(e);
              wx.showToast({
                title: '新增用户成功',
              })
            })
        }else {
          console.log('已存在');
        }
      })

  },

  // 创建userId
  getUserId(){
    let firstW = 'yf';
    let userId = `${firstW}${Date.now() + (Math.random() * 1e5).toFixed(0)}`; // Date.now()获取当前时间， number.toFixed(0) 保留后0位小数的，返回一个字符串
    wx.setStorageSync('userId', userId);
    return userId;
  },
  gotoMyComment(e){
    const userId = e.currentTarget.dataset.userid;
    wx.navigateTo({
      url: '../myComment?userId=' + userId,
    })
  },
  gotoMyTopic(e){
    const userId = e.currentTarget.dataset.userid;
    wx.navigateTo({
      url: '../myTopic?userId=' + userId,
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let openId = wx.getStorageSync('openId');
    if(!openId) return ;
    let userName = wx.getStorageSync('userName'),
      userImg = wx.getStorageSync('userImg'),
      userId = wx.getStorageSync('userId');
    this.setData({
      userName,
      userImg,
      userId,
      isLogged:true
    })
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})